home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 6
/
FM Towns Free Software Collection 6.iso
/
t_os
/
book
/
src
/
file.h
< prev
next >
Wrap
C/C++ Source or Header
|
1993-07-08
|
1KB
|
48 lines
#if !defined(__FILE_H__)
#define __FILE_H__
/* そのまま通せばいいコード */
#define israw(c) ((0x20<=(c) && (c)<=0x80) || (0xA0<=(c) && (c)<=0xDF))
/* 制御コード */
#define isctrl(c) (0x00<=(c) && (c)<=0x1F)
/* 行の最大の長さ */
#define LINEMAX 80
/* 行管理 */
#define LINEPTRs 1000 /* 1000行を一束 */
#define LINEBLOCKs 1000 /* 1000ブロック一束 */
typedef struct _LP
{
char *buf ; /* 各行の開始位置を指すポインタ */
short bytes ; /* 各行の展開前の長さ(改行を含む) */
} LINPTR ;
typedef struct _LBLOCK
{
LINPTR ptr[LINEPTRs] ; /* 1000行をまとめてブロックとして管理 */
} LBLOCK ;
extern LBLOCK *base[LINEBLOCKs] ; /* 行ブロックを指すポインタの配列 */
typedef struct _FH /* ファイル・ヘッダ */
{
char *file ; /* フルパスリスト */
char *name ; /* ファイル名のみ */
int line_max ; /* ファイルの行数 +1 */
int line_num ; /* 現在画面の最上行 */
int line_now ; /* 現在処理行(ファイル内) */
int cur_pos ; /* 現在処理行(画面内) */
} HEADER ;
typedef enum { FILE_READ, FILE_REFORM, FILE_PREVIEW } readtype_t ;
typedef enum { BACKUP, RESTORE, INIT } back_t ;
extern void free_head( void ) ;
extern HEADER *read_sub( char *file, readtype_t reform ) ;
extern void backup_file( back_t flag ) ;
#endif /* !defined(__FILE_H__) */